package cn.wolfcode.wolf2w.util;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;

import java.util.UUID;

/**
 * 上传文件工具类
 */
public abstract class UploadUtil {
    //阿里域名
    public static final String ALI_DOMAIN = "https://wolf2w-mai.oss-cn-shenzhen.aliyuncs.com/";
    /**
     * 上传到阿里云的OSS中
     * @return
     */
    public static String uploadAliYuOss(MultipartFile file) throws Exception{
        //随机生成一个文件名（防止文件冲突）
        String fileName = UUID.randomUUID().toString().replaceAll("-", "");
        // 获取真实的文件名
        String originalFilename = file.getOriginalFilename();
        // 获取后缀与设置图片的后缀名
        String ext = "." + FilenameUtils.getExtension(originalFilename);
        fileName += ext;
        //keyId = LTAI4GELYCcMB82akxtNiHfw
        //IkuC7KIYElEsqwnNmZ4cp54h13oZNk
        // Endpoint以杭州为例，其它Region请按实际情况填写。
        String endpoint = "oss-cn-shenzhen.aliyuncs.com";
        // 云账号AccessKey有所有API访问权限，建议遵循阿里云安全最佳实践，创建并使用RAM子账号进行API访问或日常运维，
        // 请登录 https://ram.console.aliyun.com 创建。
        String accessKeyId = "LTAI4GELYCcMB82akxtNiHfw";
        String accessKeySecret = "IkuC7KIYElEsqwnNmZ4cp54h13oZNk";
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId,accessKeySecret);
        // 上传文件流。
        ossClient.putObject("wolf2w-mai", fileName, file.getInputStream());
        // 关闭OSSClient。
        ossClient.shutdown();
        return ALI_DOMAIN + fileName;
    }
}
